Cameras are used to capture images. One of the fundamental limitations to the light sensors in digital cameras is their limited dynamic range, which describes the ratio between the minimum and maximum light intensities that are detectable by the light sensors. While quantization plays a significant role in the achievable dynamic range, the limitations are often mainly physical in nature. The minimum detectable light intensity is dependent upon sensor element size, efficiency and the noise floor. Individual pixels are often extremely small in compact devices, resulting in a low likelihood of capturing a photon in low light conditions and high susceptibility to interference from various noise sources and neighbouring pixels. The maximum detectable light intensity may be determined by the maximum amount of charge that a sensor element can generate from light, which may lead to a saturation effect. The exposure level of an image can be adjusted, e.g. by adjusting the exposure time, aperture size or sensor sensitivity. The exposure level of an image may be adjusted to suit lighting conditions of a scene of which an image is to be captured, e.g. for a dark scene the exposure level may be increased, whilst for a bright scene the exposure level may be decreased. Adjusting the exposure level between images allows for a wider operating range, but does not affect the dynamic range of a single exposure or image.
High Dynamic Range (HDR) images can be constructed by merging (i.e. blending) multiple images with different exposure levels, e.g. with different exposure times and/or sensor sensitivity settings. For example, two or more images may be captured of a scene sequentially, and then the sequentially captured images may be blended to form an HDR image. For example, two images may be captured: a first image with a high exposure level (which may be referred to herein as a “long exposure”) and a second image with a low exposure level (which may be referred to herein as a “short exposure”). The two images can be combined such that in dark image regions (e.g. in shadows) the long exposure is predominantly (e.g. solely) used to form the blended HDR image since the long exposure is likely to have less noise than the short exposure. However, in bright image regions (e.g. the sky) the long exposure may be saturated and as such the short exposure may be predominantly (e.g. solely) used to form the blended HDR image, to avoid unwanted saturation effects from the long exposure in these image regions. If transitions between the images used to form the HDR image are sharp then they may be noticeable in the HDR image, which may be perceptually detrimental. Therefore, the transitions may be smoothed over a range of pixels such that the transitions are not so sharp, and hence not so noticeable in the HDR image.
There may be a significant delay between sequentially captured images, even for the fastest sensors. A delay between images may be considered to be “significant” if it is long enough for changes to occur in the image due to the time difference between the time instances at which the images are captured, for example due to motion within the scene or motion of the camera, e.g. if the camera is implemented in a handheld device. For a number of reasons, it can prove challenging to blend two images if there is motion between the images. For example, if an object moves between two images which are then blended, artifacts such as ghosting effects may occur in the HDR image due to the difference in the position of the object in the two images. Motion in the scene due to dynamic objects or parallax could conceivably be tracked, but this would require a complex procedure which would typically require too much time and processing power to be implemented in real-time on a mobile device, such as a smart phone, tablet, smart watch or other suitable mobile device on which HDR processing may be performed and in which the processing power may be limited. It would be useful to have a method of handling motion when combining images to form an HDR image, which is simple enough to implement in real-time on mobile devices.